﻿////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// <copyright>Copyright 2008-2011 Andreas Huber Doenni</copyright>
// Distributed under the GNU General Public License version 2 (GPLv2).
// See accompanying file License.txt or copy at http://phuse.codeplex.com/license.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

namespace Phuse.Net.Forums
{
    using System;
    using System.Collections.Generic;
    using System.Security.Cryptography;

    /// <summary>Provides information about a forum host.</summary>
    /// <threadsafety static="true" instance="false"/>
    public interface IHostInfo : IEquatable<IHostInfo>
    {
        /// <summary>Gets the network name of the host.</summary>
        string Name { get; }

        /// <summary>Gets the port of the host.</summary>
        int Port { get; }

        /// <summary>Gets the posting user name for the host.</summary>
        string UserName { get; }

        /// <summary>Gets the posting email address for the host.</summary>
        string EmailAddress { get; }

        /// <summary>Gets the logon account name for the host.</summary>
        /// <exception cref="CryptographicException">The account name could not be decrypted. This usually happens when
        /// a different user attempts to get the account name than the one who has set it.</exception>
        string AccountName { get; }

        /// <summary>Gets the logon password for the host.</summary>
        /// <exception cref="CryptographicException">The password could not be decrypted. This usually happens when
        /// a different user attempts to get the password than the one who has set it.</exception>
        string Password { get; }
    }
}
